/**
 * @file /include/aaa/main_window.hpp
 *
 * @brief Qt based gui for aaa.
 *
 * @date November 2010
 **/
#ifndef aaa_MAIN_WINDOW_H
#define aaa_MAIN_WINDOW_H

/*****************************************************************************
** Includes
*****************************************************************************/

#include <QtGui/QMainWindow>
#include "ui_main_window.h"
#include "SpeechServer.hpp"
#include "speech_server/RemoteControl.hpp"
#include "SpeechRecognitionLog.hpp"

/*****************************************************************************
** Namespace
*****************************************************************************/


/*****************************************************************************
** Interface [MainWindow]
*****************************************************************************/
/**
 * @brief Qt central, all operations relating to the view part here.
 */
class MainWindow : public QMainWindow {
Q_OBJECT

public:
    MainWindow(QWidget *parent=0);
    ~MainWindow();


    void closeEvent(QCloseEvent *event); // Overloaded function
    void showNoMasterMessage();
    void Init(int argc,char **argv);
private Q_SLOTS:
//buttons Slots
    void on_ping_button_clicked();
    void on_run_button_clicked();
    void on_kill_button_clicked();
    void on_transmit_grammar_button_clicked();
    void on_rollback_grammar_button_clicked();
    void on_load_grammar_button_clicked();
    void on_unload_grammar_button_clicked();
    void on_unload_all_grammars_button_clicked();
    void on_clear_button_clicked();
    void on_quit();
//    void on_getSpeech_button_clicked();
//    void on_getSpeechJust_button_clicked();
//    void on_getSpeechIgnore_button_clicked();
//    void on_getSpeechYesNo_button_clicked();
    void on_say_button_clicked();
    void on_reset_pc_button_clicked();
//Logs Slot
    void updateLoggingView(QString log);
Q_SIGNALS:
    void closing();
private:
    void ShowMessageBox(QString messge);
    QStringList logs;
    Ui::MainWindowDesign ui;
     ComminucationHandler *communication_handler;
    SpeechServerNode *speechServernode;
    RemoteControl *remoteControl;
    SpeechRecognitionLog *recognition_logs;
};



#endif // aaa_MAIN_WINDOW_H
